HistoryForGameTooltipHyperLink = false;
HistoryForGameTooltip = false;
HistoryForOther = false;

local GameTooltip_obj = GameTooltip;
local GameTooltipHyperLink_obj = GameTooltipHyperLink;

local SetBagItem_orig = GameTooltip_obj["SetBagItem"];
function GameTooltip:SetBagItem(id)
	SetBagItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;		
		local icon, name, itemCount, locked = GetGoodsItemInfo(id)
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetAuctionBrowseItem_orig = GameTooltip_obj["SetAuctionBrowseItem"];
function GameTooltip:SetAuctionBrowseItem(id)
	SetAuctionBrowseItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local itemlink = GetAuctionBrowseItemLink(id);
		local linktype, data, name = ParseHyperlink(itemlink);
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetAuctionItem_orig = GameTooltip_obj["SetAuctionItem"];
function GameTooltip:SetAuctionItem(id)
	SetAuctionItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name, itemTexture, stackCount, itemPrice = GetAuctionItem();
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetBankItem_orig=GameTooltip_obj["SetBankItem"];
function GameTooltip:SetBankItem(id)
	SetBankItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		local itemlink = GetBankItemLink(id);
		if(itemlink) then
			HistoryForGameTooltipHyperLink = false;
			HistoryForGameTooltip = true;
			local linktype, data, name = ParseHyperlink(itemlink);
			AA_ShowPriceHistoryTooltip(self, name);
		end
	end
end

local SetHyperLink_orig=GameTooltipHyperLink_obj["SetHyperLink"];
function GameTooltipHyperLink:SetHyperLink(link)
	SetHyperLink_orig(GameTooltipHyperLink_obj, link);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		local linktype, data, linkname = ParseHyperlink(link);
		if(linktype == "item") then
			HistoryForGameTooltipHyperLink = true;
			HistoryForGameTooltip = false;
			local name = GameTooltipHyperLinkTextLeft1:GetText();
			local offset = string.find(name, "+");
			if(offset) then 
				name = string.sub(name, 1, offset - 2);
			end
			AA_ShowPriceHistoryTooltip(self, name);
		end
	end
end

local SetGameTooltipHyperLink_orig=GameTooltip_obj["SetHyperLink"];
function GameTooltip:SetHyperLink(link)
	SetGameTooltipHyperLink_orig(GameTooltip_obj, link);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		local linktype, data, name = ParseHyperlink(link);
		if(linktype == "item") then
			HistoryForGameTooltipHyperLink = false;
			HistoryForGameTooltip = true;
			AA_ShowPriceHistoryTooltip(self, name);
		end
	end
end

local SetCraftItem_orig=GameTooltip_obj['SetCraftItem'];  
function GameTooltip:SetCraftItem(obj)  
	SetCraftItem_orig(GameTooltip_obj, obj);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetCraftRequestItem_orig=GameTooltip_obj['SetCraftRequestItem'];  
function GameTooltip:SetCraftRequestItem(obj, id)  
	SetCraftRequestItem_orig(GameTooltip_obj, obj, id);  
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetAuctionBidItem_orig = GameTooltip_obj["SetAuctionBidItem"];
function GameTooltip:SetAuctionBidItem(id)
	SetAuctionBidItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		local offset = string.find(name, "+");
		if(offset) then 
			name = string.sub(name, 1, offset - 2);
		end
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetAuctionSellItem_orig = GameTooltip_obj["SetAuctionSellItem"];
function GameTooltip:SetAuctionSellItem(id)
	SetAuctionSellItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		local offset = string.find(name, "+");
		if(offset) then 
			name = string.sub(name, 1, offset - 2);
		end
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetAccountBagItem_orig = GameTooltip_obj["SetAccountBagItem"];
function GameTooltip:SetAccountBagItem(id)
	SetAccountBagItem_orig(GameTooltip_obj, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		local offset = string.find(name, "+");
		if(offset) then 
			name = string.sub(name, 1, offset - 2);
		end
		AA_ShowPriceHistoryTooltip(self, name);
	end
end

local SetHouseItem_orig = GameTooltip_obj["SetHouseItem"];
function GameTooltip:SetHouseItem(DBID, id)
	SetHouseItem_orig(GameTooltip_obj, DBID, id);
	if(IsAltKeyDown() or AuctionSettings["PriceHistoryAutoshow"]) then
		HistoryForGameTooltipHyperLink = false;
		HistoryForGameTooltip = true;
		local name = GameTooltipTextLeft1:GetText();
		local offset = string.find(name, "+");
		if(offset) then 
			name = string.sub(name, 1, offset - 2);
		end
		AA_ShowPriceHistoryTooltip(self, name);
	end
end
